A lot of conventional grid systems adopt a Push-type job allocation method. In the Push-type job allocation method, a specific computer unitarily carries out management of processing load information for other computers, which process jobs, the job allocation and the like.
In addition, there is also a Pull-type job allocation method. This method is carried out by combining a computer, which generates jobs, and other computers, which obtain and process the jobs. Then, the computers, which obtain and process the jobs, carry out their own processing load management, transmit an acquisition request of the job based on the processing load management information to the computer, which generates the jobs, and if it is possible to obtain a job, obtain the job to process it, and notifies the computer, which generates the jobs, of the result.
Furthermore, US-2005/275881-A1 discloses a technique to shorten the entire processing time when causing plural clients to distributedly process divided jobs. Specifically, in an image forming system in which the load distribution processing is enabled by the grid computing, when the number of client apparatuses is greater than the number of divided jobs, a job scheduler allocates the same job to plural client apparatuses, and when the job is completed in any one apparatus among the plural client apparatuses to which the same job is allocated, the execution of the job is forcibly terminated in other client apparatuses. However, the client apparatus cannot refuse the job allocation, and this method is a variation of the Push-type job allocation method.
In addition, US-2005/131993-A1 discloses a technique for autonomous management of data operation and execution resources on a grid computing system. Specifically, an autonomous management apparatus includes a monitor module, a policy module, and an adjustment module. The monitor module is configured to monitor the grid computing system in order to search a trigger event. The policy module is configured to access one of plural system policies. Each of plural system policies corresponds to an operation control parameter of system resource of the grid computing system. The adjustment module is configured to autonomously adjust the system resources according to one of plural system policies in response to a recognized trigger. Although this publication discloses that the load information of the job executing computers is unitarily managed, job throwing conditions and judgment of throwing the job are not described.
Furthermore, JP-A-2006-48273 discloses a technique for providing a flexible and easy configuration for a user when throwing, from an operation unit, a grid job in an image processing system, which is composed of a system enabling the load distribution by the grid computing and an image forming apparatus, which outputs jobs to the grid. Specifically, when executing the grid job, a first mode that the execution of the job is immediately requested or a second mode that the job can be executed later is designated, and when the second mode is designated, an input image is temporarily stored, and when a request of the job becomes possible, a processing for the stored image by using the grid is carried out. When the grid job is executed, an optimum recommended grid group is selected among grouped hosts, and the grid processing is carried out using the selected grid group. However, the technique of this publication focuses on to what group the job should be allocated, and it is not considered whether or not the client should obtain the job.
As described above, the aforementioned conventional arts have the aforementioned problems.
In addition, the Push-type job allocation method has following problems. That is, once a job is allocated to a computer, the job stays in the computer and the other computers cannot process the job as long as the job is completed or deleted. In addition, even when the same job is simultaneously allocated to individual computers, a job to manage the processing results has to be newly defined. Especially, because a processing by a slow computer has to continue even when a computer having higher processing capability becomes idle, there is a problem that the entire processing time cannot be shortened. For example, it is assumed that Job (A) for which the processing capability “100” is necessary is allocated to a computer (A) having only the processing capability “10”, because the other computers are busy. When only about 30% of Job (A) are completed although a computer (B) having the processing capability “200” becomes idle, the processing for Job (A) has to continue in the computer (A) as it is, in the conventional art. If Job (A) is allocated to the computer (B) when 30% of Job (A) is completed, the computer (B) must be able to process Job (A) shorter than a case where the computer (A) processes remaining 70% of Job (A), because the computer (B) can process Job (A) as a job for which the processing capability “50” is necessary. However, such a processing cannot be carried out.
In addition, as for another problem, when any fault occurs in the computer, there is a problem that it takes time to recognize the fault, and the job allocation becomes inefficient. In the Push-type job allocation method, typically, states of the computers are unitarily managed. As its typical method, a method for periodically notifying data concerning a state of the computer from each computer is adopted. In order to early detect the fault, the interval of this periodical notification has to be shortened. However, there are problems that this makes the network load high, and the loads of the notification source and destination computers become high.
On the other hand, in the Pull-type job allocation method, there is a problem that the processing capabilities of the computers are not unitarily managed, the job acquisition of each computer is left to a policy of each computer, and a combination of the processing capability required for the job and the processing capability of the computer is not always suitably made. For example, when the number of jobs is greater than the number of computers, there are problems that plural computers acquires the same job, and that any jobs to which any computer is not allocated occur, when the job acquisition is left to the policy of each computer.
As described above, in the conventional methods, there is a problem that the flexible switching of the job allocation is not carried out according to the states of the job and computers, and as a result, the long processing time is required. Especially, good points of the Push-type job allocation method and the Pull-type job allocation method cannot be utilized well.